#include <iostream>
#include <fstream>
#include <string>
#include <locale>
#include <ctime>
#include <random>
#include<Windows.h>
//#include <unistd.h>

using namespace std;
string login;
string password1;
string pasword2;
bool found = false;

void author() {
    ofstream out;
    out.open("authorization.txt", ios::app);
    if (out.is_open()) {
        out << login << " ";
        out << pasword2 << endl;;
        
        found = true;
    }
    else {
        cout << "Ошибка, файл не удалось открыть." << endl;
    }
    out.close();
    //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*--**-*-*-*-*

    
    
}

void zareg() {
    ifstream in;
    in.open("authorization.txt", ios::in);
    if (in.is_open()) {
        string Searchlogin, Searchpassword;
        cout << "Введите ваш логин." << endl;
        cin >> Searchlogin;
        cout << "Введите ваш пароль. " << endl;
        cin >> Searchpassword;
        //bool found = false;
        string line;

        while (getline(in, line)) {
            if (line.find(Searchlogin) != string::npos && line.find(Searchpassword) != string::npos) {
                found = true;
                cout << "Вы прошли проверку!" << endl;
            }
            else {
                found = false;
                cout << "Вы не прошли проверку." << endl;
            }

        }
    }
    else {
        cout << "Ошибка, файл не найден. " << endl;
    }
}



int main()
{
    setlocale(LC_ALL, "RU");
    int itog;
    cout << "Зарегестрированы ли вы?" << endl;
    cout << "0 - нет" << endl;
    cout << "1 - да" << endl;
    cin >> itog;

    switch (itog) { //Аутефикация и индефикация.
    case 0:
        cout << "Введите ваш будущий логин." << endl;
        cin >> login;
        cout << "Введите ваш будущий пароль. " << endl;
        //string password;
        cin >> password1;
        pasword2 = password1;
        author();
        break;
    case 1:
        zareg();
        break;
    default:
        cout << "Такого значения нет" << endl;
    }
    system("cls");
    if (found == true) {
        cout << "Авторизация/Регистрация закончилась. Вы успешно вошли в систему" << endl;
    }
    else {
        cout << "Авторизация/Регистрация закончилась. Логин или пароль не верный." << endl;
        Sleep(5000); //в миллисекундах
        return 0;
    }
    /*cout << "Выбирите действие: " << endl;
    cout << "1. Посмотреть мой профиль. " << endl;
    cout << "2. Решить задачи. " << endl;
    cout << "3. Посмотреть правильные ответы на задачи. " << endl;
    int itog2;
    cin >> itog2;
    switch (itog2){
    case 1:

    }*/


    
    cout << "Выберите сложность вычеслений" << endl;
    cout << "1 - Сложность высокая." << endl;
    cout << "2 - Средняя сложность." << endl;
    cout << "3 - Сложность легкая." << endl;

    srand(time(0));
    int itog1;
    cin >> itog1;
    system("cls");
    int sum;
    int a = rand() % 585 + 1; //плюс или минус
    int a1 = rand() % 354 + 1;
    int b = rand() % 200 + 1; // деление
    int c = rand() % 50 + 1; //умножение 
    int s;

    int badresult = 0;
    int goodresult = 0;
    switch (itog1) //Делаю логику сложностей.
    {
    case 1:
        
        sum = (a - (b * a1) + c);
        cout << a << "-" << b << "*" << a1 << "+" << c << endl;
        cout << "Ваш ответ" << endl;
        cin >> s;
        if (sum == s) {
            cout << "Ответ верный. " << endl;
            goodresult += 2;
        }
        else {
            cout << "Ответ неверный" << endl;
            badresult++;
        }
        break;
    case 2:
        sum = (a - (b * c));
        cout << "Ваш пример: " << a << "-" << b << "*" << c << endl;
        cout << "Ваш ответ: ";
        cin >> s;
        if (sum == s) {
            cout << "Ответ верный." << endl;
            goodresult++;
        }
        else {
            cout << "Ответ неверный." << endl;
            badresult++;
        }
        break;
    case 3:
        sum = a - c + a1;
        cout << "Ваш пример: " << a << "-" << c << "+" << a1 << endl;
        cout << "Ваш ответ: ";
        cin >> s;
        if (sum == s) {
            cout << "Ответ верный." << endl;
            goodresult++;
        }
        else {
            cout << "Ответ неверный." << endl;
            badresult++;
        }
        break;
    default:
        cout << "Такого значение нет" << endl;
    }

    cout << "В течение 2 секунд программа все впишет." << endl;
    Sleep(2001);

}